热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

开源|FASPell:SOTA高性能的简繁中文拼写检查工具

本文介绍了爱奇艺被EMNLP2019接收的一篇论文。论文:FASPell:AFast,Adaptable,Simple,PowerfulChineseSpellCheckerBas

本文介绍了爱奇艺被 EMNLP 2019 接收的一篇论文。

论文:FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradigm

开源链接:https://github.com/iqiyi/FASPell

“两个瓶颈”

自1990年代初期开展了一些开拓性工作以来,关于检测和纠正中文文本中的拼写错误的研究已过很长时间。然而,尽管在大多数研究中拼写错误已被简化为替换错误以及最近多个公开任务的努力,中文拼写检查仍然是一项困难的任务。而且,英语等类似语言的方法几乎不能直接用于中文,因为中文单词之间没有定界符,且单词缺乏形态上的变化,使得任何汉字的句法和语义解释都高度依赖其上下文。

几乎所有以前的中文拼写检查模型都部署了一个通用范式,其中将每个汉字的固定的相似字符集(称为困惑集或混淆集)用作候选项,然后用一个过滤器选择最佳候选项作为待纠错句子中的替换字符。这种朴素的设计面临两个主要瓶颈,而其负面影响未能在过去的提出的方案中得到缓解:

1.在稀缺的中文拼写检查数据上的过拟合问题

由于中文拼写检查数据需要乏味繁冗的专业人力工作,因为一直资源不足。为了防止模型的过拟合,Wang等人(2018)提出了一种自动方法来生成伪拼写检查数据。但是,当生成的数据达到40k句子时,其拼写检查模型的精度不再提高。Zhao等人(2017)使用了大量的语言学规则来过滤候选项,但结果却比我们的表现差,尽管我们的模型没有利用任何语言学知识。

2.困惑集的使用所带来的汉字字符相似度利用上的不灵活性和不充分性问题。

困惑集因为是固定的,因此并非在任何语境、场景下都能包含正确候选项(一个比较极端的例子是,如果困惑集按照繁体中文制定,那么繁体中文的 “體”和“休”肯定不在困惑集的同一组相似字符中,但是在简体中文中对应的“体”和“休”缺是相似字符,如果错误文本中是把“休”写成了“体”,那么繁体中文困惑集下就无法检出,必须专门再制定一个简体困惑集才可以),这会极大降低检测的召回率(不灵活性问题);另外,困惑集中的字符的相似性的信息有损失,没有得到充分利用,因为一个字符在困惑集中相似字符是无差别对待的,然而事实上每两个字符间的相似度明显是有差别的,因此会影响检测的精确率(不充分性)。Zhang等人 (2015)提出了考虑了很多并没有字符相似度重要的特征(例如分词)来弥补字符相似度利用上的不充分性,但这会为其模型添加更多不必要的噪音。

论文概述

论文提出一个基于新范式的中文拼写检查器– FASPell。新的范式包括去噪自动编码(DAE)和解码器。与以前的SOTA模型相比,新范式使得我们的拼写检查器可以更快地进行计算,易于通用于简体或繁体、人类或机器产生的各类场景下的中文文本,结构更简单,错误检测和纠正性能更强大。这四点成就,是因为新的范式规避了两个瓶颈。第一,DAE通过利用无监督预训练方法(如BERT,XLNet,MASS等),减少了监督学习所需的中文拼写检查数据量(<10,000个句子)。第二,解码器有助于消除困惑集的使用,因为它在灵活和充分地利用汉字相似性这一关键特征上的不足。

论文贡献和方法

本论文提出通过更改中文拼写检查的范式来规避上述的两个瓶颈。作为主要贡献,并以我们在提出的中文拼写检查模型FASPell为例,这种新范式的最一般形式包括一个降噪自动编码器(DAE)和一个解码器。DAE生成可以将错误文本修改为正确文本的可能的候选项矩阵,解码器在这个矩阵中寻找最佳候选项路径作为输出。DAE因为可以在大规模正常语料数据上无监督训练而仅在中文拼写检查数据上fine-tune,避免了过拟合问题。另外,只要DAE足够强大,所有的语意上可能的候选字符都可以出现,且候选字符是根据周围语境即时生成的,这避免了困惑集所带来的不灵活性;解码器根据量化的字符相似度和DAE给出的字符的语境把握度来过滤出正确的替换字符,这样字符相似性上的细微差别信息都可以得到充分利用。

本文提出的模型FASPell中,DAE是由BERT中的掩码语言模型(MLM)来充当,解码器是本文提出的把握度-字符相似度解码器(CSD)来充当,如下如所示:

《开源 | FASPell: SOTA高性能的简繁中文拼写检查工具》

CSD中使用的量化的字符相似度也是本文提出的,较过去提出的字符相似度量化方法,我们的方法更加精准。我们在字形上采用Unicode标准的IDS表征,它可以准确描述汉字中的各个笔画和它们的布局形式,这使得即使是相同笔画和笔画顺序的(例如“田”与“由”,“午”与“牛”)的汉字之间也拥有不为1的相似度,与此相比,过去基于纯笔画或者五笔、仓颉编码的计算方法则粗糙很多。在字音上我们使用了所有的CJK语言中的汉字发音,尽管我们只是对中文文本检错纠错,但是实验证明考虑诸如粤语、日语音读、韩语、越南语的汉字发音对提高拼写检查的性能是有帮助的,而过去的方法均只考虑了普通话拼音。

CSD的训练阶段,利用训练集文本通过MLM输出的矩阵,逐行绘制语境把握度-字符相似度散点图,确定能将FP和 TP分开的最佳分界曲线。推理阶段,逐行根据分界线过滤掉FP得到TP结果,然后将每行的结果取并集得到最终替换结果。以前述图片为例,句子首先通过fine-tune训练好的MLM模型,得到的候选字符矩阵通过CSD进行解码过滤,第一行候选项中只有“主”字没有被CSD过滤掉,第二行只有“著”字未被过滤掉,其它行候选项均被分界线过滤清除,得到最终输出结果,即“苦”字被替换为为“著”,“丰”被替换为“主”。

 

论文实验和结果

论文在4个数据集上分别进行了消融实验,证明了MLM的fine-tune和CSD分别对FASPell性能的贡献,实验也证明FASPell达到了SOTA的准确性。

《开源 | FASPell: SOTA高性能的简繁中文拼写检查工具》

 点击阅读原文,获取论文全文!

end

也许你还想看

2019 ICME论文解析:爱奇艺首创实时自适应码率算法评估系统

干货|文本舆情挖掘的技术探索和实践

《开源 | FASPell: SOTA高性能的简繁中文拼写检查工具》

扫一扫下方二维码,更多精彩内容陪伴你!

《开源 | FASPell: SOTA高性能的简繁中文拼写检查工具》


推荐阅读
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 打开文件管理器_【教程】模组管理器3.1食用指南
    文编:byakko最近有部分小伙伴反应还不会使用unity模组管理器,现在我就给大家讲一下unity模组管理器——从下载到使用。完整视频版以下是无WiF ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
author-avatar
手机用户2502869883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有